package cn.edu.zafu.bigdata.x.hjn;

import java.io.*;
import java.util.Scanner;

public class FileHandler {

    // 方法1：将文本写入文件
    public static void writeToFile(String fileName, String content) {
        // 创建文件路径，如果文件目录不存在则创建
        File file = new File(fileName);
        try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
            writer.write(content);  // 将输入的内容写入文件
            System.out.println("内容已成功写入文件: " + fileName);
        } catch (IOException e) {
            System.out.println("写入文件时出错: " + e.getMessage());
        }
    }

    // 方法2：从文件读取文本并输出
    public static void readFromFile(String fileName) {
        File file = new File(fileName);
        try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);  // 打印文件的每一行内容
            }
        } catch (IOException e) {
            System.out.println("读取文件时出错: " + e.getMessage());
        }
    }

    // main方法，用于测试功能
    public static void main(String[] args) {
        // 获取文件名并创建files目录
        String directory = "files";
        File dir = new File(directory);
        if (!dir.exists()) {
            dir.mkdir();  // 如果目录不存在则创建
        }

        // 创建学号文本文件名
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入您的学号: ");
        String studentId = scanner.nextLine();
        String fileName = directory + "/" + studentId + ".txt";  // 文件路径: files/学号.txt

        // 提示用户输入文本
        System.out.println("请输入您想保存的文本: ");
        String content = scanner.nextLine();

        // 调用writeToFile方法将用户输入的文本写入文件
        writeToFile(fileName, content);

        // 调用readFromFile方法读取并显示文件内容
        System.out.println("\n文件内容如下:");
        readFromFile(fileName);

        // 关闭Scanner对象
        scanner.close();
    }
}
